Telegram Group Search
🆕 Дайджест недели

Самое интересное, что произошло за последние семь дней.

Redis снова open source
Благодаря возвращению основателя Сальваторе Санфилиппо, Redis вернулся к открытой лицензии.

Microsoft автоматизирует обновление файлов .NET с помощью ИИ
Команда .NET успешно модернизировала систему сборки своего фреймворка, применив ИИ для автоматического преобразования около 300 проектов из кастомных файлов в MSBuild.

Масштабный релиз Wolverine
В релизе Wolverine 3.13 представлено множество улучшений, включая поддержку HTTP-форм с атрибутом [AsParameters], а также добавлены улучшения для работы с F#, Pulsar и Kafka.

Библиотека программиста запускает конкурс на самую смешную новость
Денежные призы самым смешным новостям

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Конкурс: 30 000 ₽ за самую смешную IT-новость

Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.

👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.

🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе

🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.

📅 Сроки: прием новостей до 11 мая включительно

Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8

Осталась неделя — ждем ваших новостей!
Подборка вакансий для шарпистов (на этот раз и F тоже)

.NET Xamarin/MAUI Mobile Developer — Гибрид (Санкт-Петербург)

С#-разработчик — Гибрид (Москва)

C# Разработчик — Офис (Москва)

C# F# Developer Junior — от 80 000, Удалённо

Бустер — Удалённо (весь мир)

➡️ Еще больше топовых вакансий — в нашем канале С# Jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
🛠 How to: как соблюдать принцип DRY

DRY (Don’t Repeat Yourself) — принцип, согласно которому каждый фрагмент знания должен существовать в системе только в одном месте. Никакого копипаста и дублирующей логики.

Проблема: дублирование валидации
// Пример плохого кода
if (user.Age < 18)
throw new Exception("User must be at least 18");

...

if (user.Age < 18)
return BadRequest("User must be at least 18");

При изменении правила — нужно помнить обновить его везде. Ловушка копипаста.

Решение: вынос логики в общее правило
public static class ValidationRules
{
public static bool IsAdult(User user) => user.Age >= 18;
}


Теперь в коде
if (!ValidationRules.IsAdult(user))
throw new Exception("User must be at least 18");

// И в другом месте:
if (!ValidationRules.IsAdult(user))
return BadRequest("User must be at least 18");


Альтернатива: использование FluentValidation или DataAnnotations
public class User
{
[Range(18, int.MaxValue, ErrorMessage = "User must be at least 18")]
public int Age { get; set; }
}


Где чаще всего нарушают DRY в .NET:


• Повторяющиеся SQL-запросы и фильтры
• Повторение одинаковых exception'ов, логов, сообщений
• Дублирование конфигурации
• UI-формы и компоненты

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧱 7 архитектурных паттернов, которые должен знать каждый программист

В быстро меняющемся мире разработки от программиста всё чаще требуется не просто писать код, а понимать, как правильно проектировать системы.

Архитектурные паттерны — это фундаментальные подходы, помогающие создавать масштабируемые, устойчивые и поддерживаемые решения.

В статье собрали и разобрали 7 архитектурных паттернов, которые сегодня стоит знать каждому разработчику — будь то разработка микросервисов, проектирование API или работа с распределёнными транзакциями.

➡️ Узнать паттерны

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Команда дня: сборка, которой не нужен .NET

Сегодня покажем команду, которая используется для публикации .NET-приложения, готового к развертыванию на целевой платформе (в данном случае — Linux x64):
dotnet publish -c Release -r linux-x64 --self-contained true


Расшифровка параметров

dotnet publish
Основная команда .NET CLI, предназначенная для компиляции приложения и подготовки всех необходимых файлов для его запуска.

-c Release
Указывает конфигурацию сборки. В данном случае Release означает, что будет использована конфигурация для продакшн-сборки, в отличие от Debug, где остаются отладочные символы и меньше оптимизаций.

-r linux-x64
Указывает целевую платформу. Здесь linux-x64 означает, что публикуемое приложение будет запускаться на 64-битной Linux-системе.

--self-contained true
Делает сборку самодостаточной: весь .NET Runtime и все зависимости включаются в сборку.
Это позволяет запускать приложение на машине без установленного .NET.

Это похоже на то, как если бы вы не просто упаковали ваш код, а положили его вместе с собственной версией операционной системы. Он будет работать «в вакууме», не завися от того, что есть на машине пользователя.

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🦾 Не наступайте на чужие грабли

В мире C# даже опытные разработчики регулярно совершают на ошибки, которые на первый взгляд безобидны, но влекут за собой трудноловимые баги, утечки ресурсов и просадки производительности.

Наткнулись на видео, в котором разбираются 10 самых распостранённых ошибок — от неоптимизированной конкатенации до страшных циклов.

➡️ Смотреть видео

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🕖 Почему база данных тормозит ваше приложение и как это исправить

Когда приложение начинает «тормозить», несмотря на тщательно оптимизированный код и обновлённые библиотеки, причина часто кроется не в логике приложения, а в базе данных.

Запросы к БД могут занимать секунды, превращая миллисекундные операции в узкое место производительности.

Если не решить эту проблему, API будет медленным, пользователи — недовольными, а система — нестабильной при высокой нагрузке.

➡️ Узнать как решить проблемы с БД

🐸Библиотека шарписта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ CA1859: производительность или гибкость

Недавно в сабреддите C# разгорелась дискуссия вокруг предупреждения компилятора CA1859: «Используйте конкретные типы, когда это возможно, для улучшения производительности». Это подняло вечный вопрос: стоит ли жертвовать абстракцией ради скорости?

⚙️ Аргументы за использование конкретных типов:

— Конкретные типы позволяют избежать накладных расходов, связанных с виртуальными вызовами и аллокациями.

— Внутренние методы, использующие конкретные типы, могут быть проще и эффективнее, так как они не требуют обработки различных реализаций интерфейсов.

🧩 Аргументы в пользу абстракций
:

— Использование интерфейсов, таких как IEnumerable или IDictionary, позволяет методам работать с различными реализациями, повышая переиспользуемость кода.

— Абстракции облегчают написание модульных тестов, позволяя подменять зависимости мок-объектами.

💬 А что выбирает вы? Гибкость или быструю работу? Пишите свои мысли в комментарии👇

🐸Библиотека шарписта #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
📰 Еженедельный дайджест

Собрали для вас материалы, которые вы могли пропустить.

Почему переход с C# на F# может быть выгоден для бизнеса
Компания Ada Beat делится опытом перехода с C# на F#, отмечая, что это приводит к упрощению кода, снижению затрат на поддержку и ускорению вывода продуктов на рынок.

Extension members в C# 14
В блоге разработчиков .NET рассказали о новой фиче — extension members, расширяющей привычные extension methods. Теперь разработчики могут добавлять к существующим типам не только методы, но и свойства — как экземплярные, так и статические.

Почему стартап Tracebit выбрал C#
В блоге Microsoft CTO стартапа Tracebit, Сэм Кокс, делится причинами выбора C# для создания B2B SaaS-продукта в области безопасности.

Новый выпуск подкаста .NET Rocks
Ведущие обсудили извечный вопрос: как найти баланс между архитектурным дизайном и непосредственным написанием кода.

7 архитектурных паттернов, которые должен знать каждый программист

Почему база данных тормозит ваше приложение и как это исправить

🐸Библиотека шарписта #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
В чем разница между Convert.ToString() и ToString()?

👾 — Convert.ToString() обрабатывает значения null, а ToString() — нет
👍 — ToString() выводит данные в соответствии с предоставленным форматом
🥰 — Convert.ToString() обрабатывает только значения null
⚡️ — ToString() обрабатывает значения null, а Convert.ToString() — нет

🐸Библиотека задач по C#
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/05/12 11:55:07
Back to Top
HTML Embed Code: